perm filename ARMDF[SYS,HE]8 blob sn#057818 filedate 1973-08-15 generic text, type T, neo UTF8
00100		TITLE ARM
00200	;	These are the error messages returned by the arm servo program
00300	
00400		ALLOK←←0	;ALL OK
00500		NOFILE←←3	;FILE NOT FOUND
00600		NODATA←←4	;ENTER ON DATA FILE FAILED
00700		NODEV←←5	;DEVICE DSK DOES NOT EXIST
00800		EXER←←1		;IF JUST 1 THEN OVERFLOW OR UNDERFLOW OCCURED,
00900		;IF OF THE FORM X1 THEN EXCESSIVE FORCE REQUIRED AT JOINT X
01000		GRASER←←2	;GRASP ERROR, HAND CLOSED TOO FAR
01100		TOUCH←←6	;STOPPED ON TOUCH
01200		;THIS ERROR IS OF THE FORM X6 WHERE THE X'th SENSOR TOUCHED
01300		READER←←7	;A/D READ ERROR
01400		TERR←←20	;SPACEWAR JOB FAILS TO TERMINATE
01500		HTERR←←22	;HAND FAILS TO FINISH IN TIME
01600		STPERR←←23	;ARM FAILED TO STOP ON FORCE LIMIT
01700		LOOPER←←24	;ARM IN CONTROL LOOP
01800		SAVERR←←25	;SAVE ARRAY INDEX ERROR
01900		FUNERR←←27	;FUNCTION DOES NOT EXIST
02000		NOTHER←←30	;THE ARM IS DOWN
02100		INVMES←←40	;MESSAGE INVALID, ARM NOT IN WAIT STATE
02200		REAERR←←50	;TRAJECTORY FILE READ ERROR
02300		VERSN←←60	;VERSION NUMBER WRONG
02400		REFERR←←70	;REFERENCE SUPPLY IS OFF,CHECK THE FUSE
02500		PDPERR←←100	;PDP-6 IS DOWN
02600		ISERR←←200	;PDP-6 SERVICE INTERRUPTED
02700		ADBUS←←300	;AD IS BUSY
02800		XGPBUS←←400	;XGP IS BUSY
02900	
03000		XLIST
03100		SUBTTL	AC DEFINITIONS AND FLAGS			LOU PAUL
03200		LIST
     

00100	;	These are conditional assembly flags
00200		DEB←←0		;causes the AC's to be saved each jiffy
00300		STEP←←0		;No acceleration compensation and predicted velocity
00400		TACH←←0		;Integrates tach voltage and sets vgain
00500		TRACK←←0	;Causes a debugging file to be written
00600	IFE TRACK,<
00700		DYNAMICS←←0	;CAUSES FORWARD AND FEEDBACK TO BE WRITTEN OUT
00800		REPORT←←0+DYNAMICS	;Causes display data to be written
00900	>
01000	IFN TRACK,<
01100		REPORT←←0
01200		DYNAMICS←←0
01300	>
01400		SIMU←←0		;Turns this program into a sail callable routine to
01500				;simulate the arm
01600		USER←←0+SIMU	;This runs the SPACEWAR job in user mode and simulates the arm
01650		ADJG←←0			;READS THE POT BOX TO SET SERVO GAINS
01658	IFN ADJG,<ADJD←←0>
01666	IFE ADJG,<
01674		ADJD←←0			;READS THE POT BOX TO SET DRIVE FACTORS
01682	>
01690		ADJUST←←ADJG+ADJD	;CAUSES THE POTS TO BE READ TO ADJUST GAINS
01700		HANDWORK←←1		;IF ZERO DOSN'T DRIVE THE HAND
01800		ARMWORK←←1		;IF ZERO RETURNS THE ARM DOWN MESSAGE
     

00100	IFN SIMU,<
00200		INTERNAL ARM.INIT,ARM.STEP
00300		INTERNAL ARM.THETA,ARM.GRASP,ARM.TOUCH,ARM.FUNCTION
00400	>
00500		EXTERNAL JOBREN,JOBOPC
00550	IFN ADJUST,<EXTERNAL EXP>
00600		OPDEF INTUUO [723B8]
00700		OPDEF UFBRD [706B8]
00800	
00900	;	AC'S
01000		BITS←←0
01100		AC←1
01200		TAC←2
01300		MQ←3
01400		I←5
01500		J←6
01600		K←7
01700		L←10
01800		DACVAL←11	;CONTAINS THE A/D READING WITH THE SIGNBITS COMP'D
01900		CBUF←12		;POINTS TO CURRENT BUFFER
02000		DATWD←13	;ARM DATAO
02100		DATA←14		;DATA POINTER FOR DEBUGGING BUFFER
02200		TAC1←15
02300		P←17		;PUSH DOWN POINTER
02400	
02500	
02600	;	CONSTANTS
02700		CHA←←62B23	;JOINT 6 POT CHANNEL
02800		CHA5←←61B23	;JOINT 5 POT CHANNEL
02900		N6CHA←←63B23	;ALT JOINT 6 POT CHANNEL
03000		HANDCHA←←70B23	;HAND POT CHANNEL
03100		PDLL←←5		;LENGTH OF PUSH DOWN
03200		MASTER←←16660	;VERSION NUMBER
03300		DBL←←6000	;LENGTH OF DEBUGGING BUFFER
03400		AD←←424		;DEVICE AD
03500		DEVT←←500	;DEVICE TOOL
03600		DB←←204		;DEVICE 136
03700		ARM←←420	;DEVICE ARM
03800		CLOCK←←730	;DEVICE CLOCK
03900		WIDTH←←600	;D/A TO SET PULSE WIDTHS
04000		MAXFN←←22	;MAXIMUM NUMBER OF FUNCTIONS
04100		JMPABS←←100	;JUMP ABSOLUTE
04200		SKPERR←←101	;SKIP ON ERROR
04300		SKPNER←←103	;SKIPN ON ERROR
04400		SKPSER←←104	;SKIPS ON ERROR
04500		JMPREL←←102	;JUMP RELATIVE
04600	
04700	IFN USER,<OPDEF DATAO [JFCL]>
04800	
04900	;	FLAGS WHICH RESIDE IN AC 0 OR IN BITSAV
05000	
05100		DTST←←1		;SPACE WAR JOB FINISHED
05200		POTREAD←←2	;READ POTS IN OCTAL+=1000, DO NOT CONVERT TO DEGREES
05300		RONLY←←4	;JUST READ POTS
05400		FINAL←←10	;NULL ARM ERRORS
05500		RUN←←20		;RUN ARM
05600		INCREM←←40	;INCREMENT SET POINT TOWARD DTH
05700		DROP←←100	;PLACE ARM DO NOT STOP IF ERRORS ARE ZERO
05800		ALT6←←200	;READ ALT POT 6
05900		HCL←←400	;INITIALIZATION FOR HAND FUNCTIONS
06000		ALT←←1000	;TRAJECTORY ALT PATH
06100		STP←←2000	;STOP ON FORCE LIMIT
06200		TRIP←←4000	;TURN ON ARM
06300		REREAD←←10000	;AD HAS HAD TO BE RESTARTED
06400		STCH←←20000	;STOP ON TOUCH
06500		VZERO←←40000	;INITIALIZE VZ
06600		WOB←←100000	;WOBBLE OUTER JOINTS
06700		NSET←←200000	;DO CALL SETSET
06800		BOTH←←400000	;MERGE
06900	;FLAGS WHICH RESIDE IN THE LH OF DATWD
07000		NNUL←←1		;DO NOT NULL
07100		INT←←2		;INTERPOLATE CI AS THE ARM MOVES
07200		NXTFN←←4	;START NEXT FUNCTION NOW
07300	;FLAGS IN LH OF INSTRUCTIONS
07400		MERGE←←400	;MERGE
07500	
07600		RELOCF←←40
07700		HOLDF←←20
07800		DEC←←-4
07900		XF←←1
08000	
08100		XALL
08200		XLIST
08300		SUBTTL	MESSAGE FORMAT				LOU PAUL
08400		LIST
     

00100	;	THIS IS THE 32 WORD MAIL MESSAGE
00200	
00300	EXE:	XWD MASTER,0	;18-27 NARGS, 30 RELOC, 31 HOLD, 32 SOTCH, 33-35 EXE
00400				;0 READ IN OCTAL
00500				;1 READ IN DECIMAL
00600				;2 EXECUTE FILE
00700				;3 EXECUTE FUNCTION
00800	FILE:	0
00900	PPPN:	0
01000	BAND:	0
01100	SEGJOB:	0
01200	NAME:	0
01300	STATUS:	0
01400	SEGMENT:0
01500	NERVES:	0
01600	ETOR:	0
01700	THETA:	0
01800	ARGS:	BLOCK =21
01900	
02000		XLIST
02100		SUBTTL	USER LEVEL CODE				LOU PAUL
02200		LIST